package com.lm.dao;

import java.util.List;

import com.lm.dto.DiscountDTO;
import com.lm.dto.SearchCondition;
import com.lm.model.Product;

public interface ProductDAO {
	public List getSpecialProductList() throws Throwable ;

	public List getSpeciaproductroductList(String typeID, String brandID)
			throws Throwable ;

	public List getSpeciaproductroductList(String typeID) throws Throwable ;

	public List getRecommendProduct() throws Throwable ;

	public List getRecommendProduct(String typeID) throws Throwable ;

	public List getRecommendProduct(String typeID, String brandID)
			throws Throwable ;

	public List getHotProduct() throws Throwable ;

	public List getHotProduct(String typeID) throws Throwable ;

	public List getHotProduct(String typeID, String brandID) throws Throwable ;

	public DiscountDTO getTotalDiscountInfo() throws Throwable ;

	public List getProductListByUserID(int userID) throws Throwable ;

	public List getAllConfirmProductList() throws Throwable ;

	public List getAlproductroductList() throws Throwable ;

	public List getBrandIDAndTypeIDGroupBy() throws Throwable ;

	public Product getProductByUserIDAndProductID(int userID, String productID)
			throws Throwable ;

	public Product getProductByProductID(String productID) throws Throwable ;

	public List getProductByBrandID(String brandID) throws Throwable ;

	public String getProductIDsBySupporterID(String supporterID)
			throws Throwable ;

	public List getResultProduct(SearchCondition search) throws Throwable ;

	public List getProductByBrandIDAndTypeID(int typeID, int brandID)
			throws Throwable ;

	public int getProductIDByUserID(int userID) throws Throwable ;

	public void addProductByUserID(Product product, int userID)
			throws Throwable ;

	public void editProductByUserIDAndProductID(Product product, int userID,
			String productID) throws Throwable ;

	public void editProductByProductID(Product product, String productID)
			throws Throwable ;

	public void updateHitOfProduct(int hit, int productID) throws Throwable ;

	public void deleteProductByProductID(int productID) throws Throwable ;

	public void deleteProductByTypeID(int typeID) throws Throwable ;

	public void deleteProductByUserID(int userID) throws Throwable;


}
